#ifndef STEGGEN_H
#define STEGGEN_H

typedef struct steg_gen {
    char *data;

    size_t meta_lines;
    size_t array_lines;

    int *element_number;

    char **meta_var;
    char **meta_val;
    char **arr_name;
    char ***array;
} steg_gen;

typedef struct steggen_result {
    int n;
    int *elems;
} steggen_result;

size_t count_elements(char* array_line);
steg_gen parse_steg_generator(char* filename);
void free_steggen(steg_gen s);
float steggen_complexity(steg_gen s);
unsigned long long rev_prod(int *data, int n, int k);
steggen_result call_steggen_value(steg_gen s, unsigned long long v);

#endif